linux pidstat命令--进程监控

pidstat

监控并统计Linux进程的数据。

pidstat命令用来监控被Linux内核管理的独立任务(进程)。它输出每个受内核管理的任务的相关信息。pidstat命令也可以用来监控特定进程的子进程。间隔参数用于指定每次报告间的时间间隔。它的值为0(或者没有参数)说明进程的统计数据的时间是从系统启动开始计算的。

pidstat安装

pidstat 是sysstat软件套件的一部分,sysstat包含很多监控linux系统状态的工具,它能够从大多数linux发行版的软件源中获得。

在DebianUbuntu系统中可以使用下面的命令来安装:

1
apt-get install sysstat

CentOSFedoraRHEL版本的linux中则使用下面的命令:

1
yum install sysstat

pidstat cpu监控(-u)

1
pidstat

使用pidstat不加任何参数等价于加上-u参数。

1
pidstat -u

pidstat

  • PID - 被监控的任务的进程号
  • %usr - 当在用户层执行(应用程序)时当前进程的cpu使用率,和 nice 优先级无关。注意这个字段计算的cpu时间不包括在虚拟处理器中花去的时间。
  • %system - 当前进程在系统层使用时的cpu使用率。
  • %guest - 进程花费在虚拟机上的cpu使用率(运行在虚拟处理器)。
  • %CPU - 进程总的cpu使用率。在SMP环境(多处理器)中,如果在命令行中输入-I参数的话,cpu使用率会除以你的cpu数量。
  • CPU - 正在运行当前进程的处理器编号。
  • Command - 进程的命令名称。

pidstat 内存监控(-r)

1
pidstat -r

pidstat_r

  • minflts - 从内存中加载数据时每秒出现的小的错误的数目,这些不要求从磁盘载入内存页面。
  • majflts - 从内存中加载数据时每秒出现的较大错误的数目,这些要求从磁盘载入内存页面。
  • VSZ - 虚拟内存大小:整个进程的虚拟内存使用(kb)
  • RSS - 物理内存使用:任务的不可交换物理内存的使用量(kb)
  • %MEM - 该进程使用内存的百分比

pidstat 磁盘IO监控(-d)

1
pidstat -d

pidstat_d

  • kB_rds - 每秒进程从磁盘读取的数据量(以kB为单位)
  • kB_wrs - 每秒进程向磁盘写的数据量(以kB为单位)
  • kB_ccwrs - 每秒进程写入磁盘被取消的数据量(以kB为单位)

pidstat 指定进程监控(-p)

1
pidstat -p ${pid}

pidstat_p

pidstat 采集周期

1
pidstat m n

pidstat_m_n

表示以m为时间间隔,采集n次

pidstat 组合使用

1
pidstat -u -r -d -p ${pid} m n

pidstat_combine

表示监控指定进程的cpu,内存,磁盘IO,并以m为时间间隔,取样n次。

参考资料

  1. https://linux.cn/article-4257-1.html